home *** CD-ROM | disk | FTP | other *** search
/ Turnbull China Bikeride / Turnbull China Bikeride - Disc 1.iso / ARGONET / PD / GRAPHICS / POV302.ZIP / pov302 / povscn / level3 / pov / wg6 < prev   
Text File  |  1995-11-08  |  5KB  |  257 lines

  1. // Persistence Of Vision raytracer version 3.0 sample file.
  2. // File by Dan Farmer
  3. // Wine glass and chessboard
  4. // Updated October, 1996
  5.  
  6. #version 3.0
  7. global_settings { assumed_gamma 1.0 number_of_waves 3 }
  8.  
  9. #include "colors.inc"
  10. #include "shapes.inc"
  11. #include "textures.inc"
  12. //#include "glass.inc"
  13. #include "metals.inc"
  14.  
  15. camera {
  16.    location <50.0, 55.0, -75.0>
  17.    direction z
  18.    up y
  19.    right x*4/3
  20.    look_at <-10.0, 18.0, 0.0>
  21. }
  22.  
  23. light_source { <10.0, 50.0, 35.0> colour White }
  24. light_source { <-35.0, 30.0, -150.0> colour White }
  25.  
  26. #declare T_Glass = texture {
  27.    pigment { color red 1.0 green 1.0 blue 1.0 filter 0.95 }
  28.    finish {
  29.       ambient 0.0
  30.       diffuse 0.0
  31.       reflection 0.1
  32.       refraction on
  33.       ior 1.51
  34.       phong 0.3
  35.       phong_size 90
  36.       caustics 2
  37.    }
  38. }
  39.  
  40. #declare Wine = color red 1.0 filter 0.85
  41.  
  42. #declare Liquid = finish {
  43.    reflection 0.05
  44.    refraction on
  45.    ior 1.45
  46.    caustics 2
  47.    fade_distance 40                   // only for this scene
  48.    fade_power 1
  49. }
  50.  
  51. #declare Bead = object {
  52.    sphere { <0, 0, 0>, 1 scale <1.65, 0.65, 1.65> }
  53.    texture { T_Glass
  54.      finish {
  55.        fade_distance 1.5              // only for this scene
  56.        fade_power 1
  57.      }
  58.    }
  59. }
  60.  
  61. #declare Rim =
  62.    torus {0.975, 0.025
  63.    clipped_by { plane { -y, 0.0 } }
  64.    scale <15.0, 10.0, 15.0>
  65.    translate 24.0*y
  66.    texture {
  67.       T_Glass
  68.       finish { fade_distance 0.025  fade_power 1 }
  69.    }
  70. }
  71.  
  72. #declare Top = intersection {
  73.    plane { y, 1.0  }
  74.    object { QCone_Y }
  75.    object { QCone_Y scale <0.97, 1.0, 0.97> inverse }
  76.  
  77.    clipped_by { plane { y, 0.0  inverse } }
  78.    scale <15.0, 10.0, 15.0>
  79.    translate 14.0*y
  80.    texture { T_Glass
  81.      finish {
  82.        fade_distance 1.5              // only for this scene
  83.        fade_power 1
  84.      }
  85.    }
  86. }
  87.  
  88. #declare Stem =
  89. cylinder { y*3.25, y*14, 1
  90.   texture { T_Glass
  91.     finish {
  92.       fade_distance 1.5              // only for this scene
  93.       fade_power 1
  94.     }
  95.   }
  96. }
  97.  
  98.  
  99. #declare Base = object {
  100.    QCone_Y
  101.    clipped_by {
  102.       plane { y, 0.0  }
  103.       plane { y, -1.0 inverse }
  104.    }
  105.    translate 1.0*y         /* This actually puts the base of the cone on y=0*/
  106.    scale <12.0, 3.25, 12.0>
  107.    texture { T_Glass
  108.      finish {
  109.        fade_distance 3.25              // only for this scene
  110.        fade_power 1
  111.      }
  112.    }
  113. }
  114.  
  115. #declare Wine2 =
  116. union {
  117.    cone { 0, 0, y, 0.95 open
  118.       texture {
  119.          finish { Liquid }
  120.          pigment { Wine }
  121.       }
  122.    }
  123.    disc { y, y, 0.95
  124.       texture {
  125.          finish { Liquid
  126.             specular 1
  127.             roughness 0.01
  128.          }
  129.          pigment { Wine }
  130.          normal { onion 0.75 frequency 3 sine_wave turbulence 0.15 }
  131.       }
  132.  
  133.    }
  134.    scale <14.9, 9.5, 14.9>
  135.    translate 14.0*y
  136.    texture {
  137.       finish { Liquid }
  138.       pigment { Wine }
  139.    }
  140. }
  141.  
  142.  
  143. #declare Frame =
  144. union {
  145.    // corners
  146.    sphere { <-120, 0, -120>, 4.65 }
  147.    sphere { < 120, 0, -120>, 4.65 }
  148.    sphere { <-120, 0,  120>, 4.65 }
  149.    sphere { < 120, 0,  120>, 4.65 }
  150.  
  151.    object {
  152.       Disk_X    /* Front rounded edge */
  153.       scale <120, 4.65, 4.65>
  154.       translate -z*120
  155.    }
  156.    object {
  157.       Disk_Z    /* Left rounded edge */
  158.       scale <4.65, 4.65, 120>
  159.       translate -x*120
  160.    }
  161.    object {
  162.       Disk_X    /* Rear rounded edge */
  163.       scale <120, 4.65, 4.65>
  164.       translate  z*120
  165.    }
  166.    object {
  167.       Disk_Z    /* Right rounded edge */
  168.       scale <4.65, 4.65, 120>
  169.       translate x*120
  170.    }
  171.    texture { Silver_Texture }
  172. }
  173.  
  174. #declare ChessBoard = object {
  175.    Cube
  176.    scale <120.0, 4.0, 120.0>
  177.  
  178.    texture {
  179.       tiles {
  180.          texture {
  181.            pigment {
  182.                marble
  183.                turbulence 1
  184.                lambda 2.1
  185.                omega 0.707
  186.                scale <2, 1, 2>
  187.                color_map {
  188.                    [0.00 rgb 0.975 ]
  189.                    [0.55 rgb <0.2, 0.25, 0.3>]
  190.                    [0.75 rgb 0.2 ]
  191.                    [0.85 rgb 0.5 ]
  192.                    [1.00 rgb 0.975 ]
  193.               }
  194.            }
  195.            finish { diffuse 1 }
  196.          }
  197.       tile2
  198.          texture {
  199.             pigment { Gray10 }
  200.             finish { diffuse 1 specular 0.5 roughness 0.025}
  201.          }
  202.       }
  203.    scale <30.0, 4.001, 30.0>
  204.    }
  205. }
  206.  
  207.  
  208. #declare WineGlass_Without_Wine = merge {
  209.    object { Rim   }
  210.    object { Top   }
  211.    object { Bead  translate 14.5*y }
  212.    object { Bead  translate 10.0*y }
  213.    object { Bead  translate  7.0*y }
  214.    object { Bead  translate  3.0*y }
  215.    object { Stem  }
  216.    object { Base  }
  217.    scale <1.0, 1.50, 1.0>
  218. }
  219. #declare WineGlass_With_Wine = union {
  220.    object { WineGlass_Without_Wine }
  221.    object { Wine2
  222.       scale <1.0, 1.50, 1.0>
  223.    }
  224. }
  225.  
  226.  
  227. fog { distance 200 color Black }
  228.  
  229. /* Ground plane */
  230. plane {
  231.    y, 0.0
  232.    texture {
  233.       pigment { RichBlue }
  234.       normal {
  235.          quilted 0.45
  236.          control0 1 control1 1
  237.          scale <0.45, 1, 0.45>
  238.       }
  239.    }
  240. }
  241.  
  242. union {
  243.     object { Frame }
  244.     object { ChessBoard }
  245.     translate <0.0, 4.0, 145.0>
  246. }
  247.  
  248. // How did I figure out those wierd transformations below?
  249. // Well, they'd be less obscure had I created the wine glass properly,
  250. // but since I didn't, I simply put the camera a tiny bit above the
  251. // floorplane and tried various values until it "fit".
  252.  
  253. object { WineGlass_Without_Wine translate -x*12.15 rotate -z*86.5 }
  254.  
  255. object { WineGlass_With_Wine translate <0, 0, -20>}
  256.  
  257.